473,418 Members | 2,090 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,418 software developers and data experts.

Microsoft.XMLDOM ASP XML parsing

B
I have an XML string

<?xml version="1.0" encoding="UTF-8"?>
<SSOUser><Status>FAIL</Status><Message>Unable to find session id of
1137018716939</Message></SSOUser>
That I am trying to retrieve the values between the tags for.
I want to get the value from
<Status>FAIL</Status>
so I get the value "FAIL"

I am using the following code (and have tried MANY variations) to retrieve
the specific field values but I can not find out how to do this.
response.Write(xml.childNodes(1).text)

This writes the ENTIRE XML data to the screen. I want to get the above data
ONLY.

I want to be able to do this ALL in ASP server side ONLY.

Any help would be apprciated.

Thank You.

Jan 13 '06 #1
9 26820
B wrote:
I have an XML string

<?xml version="1.0" encoding="UTF-8"?>
<SSOUser><Status>FAIL</Status><Message>Unable to find session id of
1137018716939</Message></SSOUser>
That I am trying to retrieve the values between the tags for.
I want to get the value from
<Status>FAIL</Status>
so I get the value "FAIL"

I am using the following code (and have tried MANY variations) to
retrieve the specific field values but I can not find out how to do
this.
response.Write(xml.childNodes(1).text)

This writes the ENTIRE XML data to the screen. I want to get the
above data ONLY.

I want to be able to do this ALL in ASP server side ONLY.

Any help would be apprciated.

Thank You.


response.write xml.selectSingleNode("//Status").text

--
Microsoft MVP -- ASP/ASP.NET
Please reply to the newsgroup. The email account listed in my From
header is my spam trap, so I don't check it very often. You will get a
quicker response by posting to the newsgroup.
Jan 13 '06 #2
Assuming the xml variable is the document element then childNodes(1) refers
to the Message element.

Given the XML loaded in to DOM variable called oDOM you need:-

oDOM.selectSingleNode("/SSOUser/Status").text

"B" wrote:
I have an XML string

<?xml version="1.0" encoding="UTF-8"?>
<SSOUser><Status>FAIL</Status><Message>Unable to find session id of
1137018716939</Message></SSOUser>
That I am trying to retrieve the values between the tags for.
I want to get the value from
<Status>FAIL</Status>
so I get the value "FAIL"

I am using the following code (and have tried MANY variations) to retrieve
the specific field values but I can not find out how to do this.
response.Write(xml.childNodes(1).text)

This writes the ENTIRE XML data to the screen. I want to get the above data
ONLY.

I want to be able to do this ALL in ASP server side ONLY.

Any help would be apprciated.

Thank You.

Jan 13 '06 #3
B
I am unsure what the oDOM variable is or if I need to set anything to it

I am laoding the xml data like this:

Dim xml
Set xml = Server.CreateObject("Microsoft.XMLDOM")
xml.async = False
xml.loadXML(xmlData)

where xmlData is a variable that is filled with the data from an
Server.CreateObject("Msxml2.XMLHTTP.3.0")
get method.

I tried the below from the previous post.
response.write xml.selectSingleNode("//Status").text
and I get an error:
Object required: '[object]'
on that line of code.

Can you please tell me what I need to do/set to get the oDom variable
populated for your suggestion to work?

"AnthonyWJones" wrote:
Assuming the xml variable is the document element then childNodes(1) refers
to the Message element.

Given the XML loaded in to DOM variable called oDOM you need:-

oDOM.selectSingleNode("/SSOUser/Status").text

"B" wrote:
I have an XML string

<?xml version="1.0" encoding="UTF-8"?>
<SSOUser><Status>FAIL</Status><Message>Unable to find session id of
1137018716939</Message></SSOUser>
That I am trying to retrieve the values between the tags for.
I want to get the value from
<Status>FAIL</Status>
so I get the value "FAIL"

I am using the following code (and have tried MANY variations) to retrieve
the specific field values but I can not find out how to do this.
response.Write(xml.childNodes(1).text)

This writes the ENTIRE XML data to the screen. I want to get the above data
ONLY.

I want to be able to do this ALL in ASP server side ONLY.

Any help would be apprciated.

Thank You.

Jan 13 '06 #4
B wrote:
I am unsure what the oDOM variable is or if I need to set anything to
it
He's talking about an xml domdocument, which is what your code is creating.
I am laoding the xml data like this:

Dim xml
Set xml = Server.CreateObject("Microsoft.XMLDOM")
xml.async = False
xml.loadXML(xmlData)

where xmlData is a variable that is filled with the data from an
Server.CreateObject("Msxml2.XMLHTTP.3.0")
get method.

I tried the below from the previous post.
response.write xml.selectSingleNode("//Status").text
and I get an error:
Object required: '[object]'
on that line of code.

Can you please tell me what I need to do/set to get the oDom variable
populated for your suggestion to work?


Since this is my code, you should have replied to me. Since that line
failed, that means your xml is not as you represented it. You must remember
that xml is case sensitive, so if your xml contains <status></status> and I
search for //Status, I will not find anything.

A more error-proof way of doing this is:

set node = xml.selectSingleNode("/SSOUser/Status")
if isnothing(node) then
response.write "Could not find ""/SSOUser/Status"""
else
response.write node.text
end if

Bob Barrows
--
Microsoft MVP -- ASP/ASP.NET
Please reply to the newsgroup. The email account listed in my From
header is my spam trap, so I don't check it very often. You will get a
quicker response by posting to the newsgroup.
Jan 13 '06 #5
Bob Barrows [MVP] wrote:
A more error-proof way of doing this is:

set node = xml.selectSingleNode("/SSOUser/Status")
if isnothing(node) then
response.write "Could not find ""/SSOUser/Status"""
else
response.write node.text
end if

Actually, this will work better:

set node = nothing
set node = xml.selectSingleNode("/SSOUser/Status")
if isnothing(node) then
response.write "Could not find ""/SSOUser/Status"""
else
response.write node.text
end if

--
Microsoft MVP -- ASP/ASP.NET
Please reply to the newsgroup. The email account listed in my From
header is my spam trap, so I don't check it very often. You will get a
quicker response by posting to the newsgroup.
Jan 13 '06 #6
B
Hello,

I appreciate the help but I am still unable to get this to work.

My exact XML string is (being writtin to the screen code using
responce.write):

<?xml version="1.0" encoding="UTF-8"?>
<SSOUser><Status>FAIL</Status><Message>Unable to find session id of
1137018716939</Message></SSOUser>
The IsNothing() code does not work for me, I get a "Type Mismatch" error on
this.

But if I take out that check and just try to write the Node.text to the
screen it still does not work. I would appareciate your help some more in
this.

My exact code I am using (minus the URL where I am getting the XML data from
(cant post as security reasons)) is below between the 2 lines.

__________________________________________________ ______________
Set xml = Server.CreateObject("Msxml2.XMLHTTP.3.0")

xml.Open "GET", "URL HERE", False,"ID","PW"
xml.Send
Dim xmlData
xmlData = xml.responseText

%>

<br>
<%Response.Write xmlData %>
<br><br>

<%
Dim xml
Set xml = Server.CreateObject("Microsoft.XMLDOM")
xml.async = False
xml.loadXML(xmlData)

set node = nothing
set node = xml.selectSingleNode("/SSOUser/Status")
if IsNothing(node) then
'if isblank(node) then
response.Write("NOT FOUND")
else
response.write(node.text)
end if
__________________________________________________ ______________

"Bob Barrows [MVP]" wrote:
Bob Barrows [MVP] wrote:
A more error-proof way of doing this is:

set node = xml.selectSingleNode("/SSOUser/Status")
if isnothing(node) then
response.write "Could not find ""/SSOUser/Status"""
else
response.write node.text
end if

Actually, this will work better:

set node = nothing
set node = xml.selectSingleNode("/SSOUser/Status")
if isnothing(node) then
response.write "Could not find ""/SSOUser/Status"""
else
response.write node.text
end if

--
Microsoft MVP -- ASP/ASP.NET
Please reply to the newsgroup. The email account listed in my From
header is my spam trap, so I don't check it very often. You will get a
quicker response by posting to the newsgroup.

Jan 16 '06 #7
B wrote:
Hello,

I appreciate the help but I am still unable to get this to work.

My exact XML string is (being writtin to the screen code using
responce.write):

<?xml version="1.0" encoding="UTF-8"?>
<SSOUser><Status>FAIL</Status><Message>Unable to find session id of
1137018716939</Message></SSOUser>
The IsNothing() code does not work for me, I get a "Type Mismatch"
error on this.


I should have used "Is Nothing" - sorry about that. This code is tested and
works as desired:

<%
dim xmlstring, xmldoc,node
xmlstring="<?xml version=""1.0"" encoding=""UTF-8""?>" & _
"<SSOUser><Status>FAIL</Status><Message>Unable to find " & _
"session id of 1137018716939</Message></SSOUser>"
set xmldoc=CreateObject("msxml2.domdocument")
xmldoc.loadXML xmlstring
set node = nothing
set node = xmldoc.selectSingleNode("/SSOUser/status")
if node is nothing then
response.write "Could not find ""/SSOUser/status"""
else
response.write node.text
end if

%>

Bob Barrows
--
Microsoft MVP -- ASP/ASP.NET
Please reply to the newsgroup. The email account listed in my From
header is my spam trap, so I don't check it very often. You will get a
quicker response by posting to the newsgroup.
Jan 16 '06 #8
B
That worked! THANKS!!

Of cource now the data they are sending to me thought the XML get method is
formatted wrong, it is returning to XML definitions so it wont work till they
fix that part, but it works with the hard coded XML data.

THANKS AGAIN

"Bob Barrows [MVP]" wrote:
B wrote:
Hello,

I appreciate the help but I am still unable to get this to work.

My exact XML string is (being writtin to the screen code using
responce.write):

<?xml version="1.0" encoding="UTF-8"?>
<SSOUser><Status>FAIL</Status><Message>Unable to find session id of
1137018716939</Message></SSOUser>
The IsNothing() code does not work for me, I get a "Type Mismatch"
error on this.


I should have used "Is Nothing" - sorry about that. This code is tested and
works as desired:

<%
dim xmlstring, xmldoc,node
xmlstring="<?xml version=""1.0"" encoding=""UTF-8""?>" & _
"<SSOUser><Status>FAIL</Status><Message>Unable to find " & _
"session id of 1137018716939</Message></SSOUser>"
set xmldoc=CreateObject("msxml2.domdocument")
xmldoc.loadXML xmlstring
set node = nothing
set node = xmldoc.selectSingleNode("/SSOUser/status")
if node is nothing then
response.write "Could not find ""/SSOUser/status"""
else
response.write node.text
end if

%>

Bob Barrows
--
Microsoft MVP -- ASP/ASP.NET
Please reply to the newsgroup. The email account listed in my From
header is my spam trap, so I don't check it very often. You will get a
quicker response by posting to the newsgroup.

Jan 16 '06 #9
<?xml version="1.0" encoding="UTF-8"?>
<SSOUser><Status>FAIL</Status><Message>Unable to find session id of
1137018716939</Message></SSOUser>

That is your exact string right?

you were writing it with

<%Response.Write xmlData %>

and notice that this is what you have working when it's hard coded...

xmlstring="<?xml version=""1.0"" encoding=""UTF-8""?>" & _
"<SSOUser><Status>FAIL</Status><Message>Unable to find " & _
"session id of 1137018716939</Message></SSOUser>"

This suggests that you need to escape all double quotes in your source string
before using it as your XML source. You do that by doing a Replace on all
"""" with """""" this is replacing " with "".

<br>
<%Response.Write Replace(xmlData, """", """""") %>
<br><br>

....never know... I didn't test this idea, but, it's a quick fix if
that's really the problem

hth,

D.
B wrote:
That worked! THANKS!!

Of cource now the data they are sending to me thought the XML get method is
formatted wrong, it is returning to XML definitions so it wont work till they
fix that part, but it works with the hard coded XML data.

THANKS AGAIN

"Bob Barrows [MVP]" wrote:

B wrote:
Hello,

I appreciate the help but I am still unable to get this to work.

My exact XML string is (being writtin to the screen code using
responce.write):

<?xml version="1.0" encoding="UTF-8"?>
<SSOUser><Status>FAIL</Status><Message>Unable to find session id of
1137018716939</Message></SSOUser>
The IsNothing() code does not work for me, I get a "Type Mismatch"
error on this.


I should have used "Is Nothing" - sorry about that. This code is tested and
works as desired:

<%
dim xmlstring, xmldoc,node
xmlstring="<?xml version=""1.0"" encoding=""UTF-8""?>" & _
"<SSOUser><Status>FAIL</Status><Message>Unable to find " & _
"session id of 1137018716939</Message></SSOUser>"
set xmldoc=CreateObject("msxml2.domdocument")
xmldoc.loadXML xmlstring
set node = nothing
set node = xmldoc.selectSingleNode("/SSOUser/status")
if node is nothing then
response.write "Could not find ""/SSOUser/status"""
else
response.write node.text
end if

%>

Bob Barrows
--
Microsoft MVP -- ASP/ASP.NET
Please reply to the newsgroup. The email account listed in my From
header is my spam trap, so I don't check it very often. You will get a
quicker response by posting to the newsgroup.

Jan 16 '06 #10

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

1
by: Mike Labman | last post by:
I'm parsing an XML document using the XMLDOM object in ASP. I am running into a problem with a section formatted like this: <MasterElement> TitleOfElement <Abbreviation> TOE </Abbreviation>...
2
by: Milan | last post by:
Hi! I am loading XML file this way: oDom = Server.CreateObject("Microsoft.XMLDOM") oDom.async = False If oDom.Load(Server.MapPath("lang/EN.xml")) Then GetXMLDocument = oDom.documentElement...
1
by: Eduardo Rosa | last post by:
How can I select a comment node using selectSingleNode, sendo que selectSingleNode("#comment") don't works? thanks a lot
2
by: jfizer | last post by:
I have a web app that uses a form with its fields populated from XML using Microsoft.XMLDOM. The problem is that Microsoft.XMLDOM functions seem to run on their own thread, so I dont know when the...
1
by: Eitan | last post by:
Hello, IE is fine, but when I am using Mozila browser and do in javascript as follows : var current_menu; current_menu = new ActiveXObject("Microsoft.XMLDOM"); .... It works only for...
39
by: tydbowl | last post by:
I have a problem where the below code chunk causes handle leaks on some machines. The leak APPEARS to be handles to the registry key: HKCU\Software\Microsoft\Windows\CurrentVersion\Internet...
1
AnuSumesh
by: AnuSumesh | last post by:
Hi, I want to read the text property of XML file. My xml file is as follows: <?xml version="1.0"?> <Domain_Credentials> <User> anu </User>
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...
0
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.